package ofertas;

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

import org.junit.Before;
import org.junit.Test;

import productos.Presentacion;

public class TestVariasOfertas {

	Oferta hojaDeOferta1;
	Oferta hojaDeOferta2;
	Oferta compuestoOfertas;

	@Before
	public void setUp() throws Exception {

	}

	@Test
	public void testSiTieneVariasOfertasDelMismoProductoMeDevuelveLaSumaDeTodosLosPorcentajesQUeCoinciden() {

		Presentacion producto1 = mock(Presentacion.class);

		compuestoOfertas = new VariasOfertas();
		hojaDeOferta1 = mock(OfertaProducto.class);
		hojaDeOferta2 = mock(OfertaProducto.class);

		when(hojaDeOferta1.valorOfertaParaProducto(producto1)).thenReturn(0.3);

		when(hojaDeOferta2.valorOfertaParaProducto(producto1)).thenReturn(0.2);

		compuestoOfertas.agregarOferta(hojaDeOferta1);
		compuestoOfertas.agregarOferta(hojaDeOferta2);

		assertEquals(0.5, compuestoOfertas.valorOfertaParaProducto(producto1),
				0.0);
		verify(hojaDeOferta1, times(1)).valorOfertaParaProducto(producto1);
	}
}
